進擊的資料科學

郭耀仁

投影片連結

yaojenkuo.io/modern-ds

關於我

教學

  • Python 與網站擷取(文化大學進修推廣部)
  • 2017 資料科學年會講師
  • R 語言與視覺化應用(國立台北商業大學)
  • Python 與機器學習(玉山商業銀行)

著作

競賽

經歷

  • Kyosei.ai
  • Coupang
  • SAS
  • CTBC

學習資源

先說結論

  • 資料科學不是一個橫空出世的學門
  • 撰寫程式是資料科學中的必備能力
  • 資料科學的核心是人不是解決方案

資料科學不是一個橫空出世的學門

Data-driven Decision 的浪潮

一直都在

  • Statistical analytics
  • Business intelligence
  • Marketing science
  • …etc.

現在成為了 Buzz words

  • Big Data 大數據
  • Data Science 資料科學

任何一個 data-drive decision 都是漂亮的資料科學應用

Target

How Target Figured Out A Teen Girl Was Pregnant Before Her Father Did

Forbes, FEB 16, 2012

http://drewconway.com/

撰寫程式是資料科學中的必備能力

你在咖啡廳做什麼?

https://automatetheboringstuff.com/

撰寫程式的優勢

  • 彈性
  • 自動化
  • 可重複性
  • 與系統介接

Data Hacker

Get dirty with data, technology and math, nothing should be too practical enough, too theoretical enough, or too mathematical enough for you to handle.

Quoted from Ajai Sharma

Quotes from Hadley

2017 Kaggle Survey Notebook

The 2017 Top Programming Languages

Python 與 R

  • 直譯式
  • 動態型別
  • 開源
  • 活躍社群
  • 大量應用套件

Python 與 R 登上資料科學的舞台

該如何開始

請放心且大膽地選擇一個開始你的資料科學旅程,她們都是在資料科學應用上我們能大力仰賴的程式語言。

R 語言使用者的 Python 學習筆記

問自己幾個問題

使用者特徵 建議
我沒有寫過程式 R 語言
我喜歡函數型編程 R 語言
我喜歡物件導向編程 Python
我想要作統計分析為主 R 語言
我想要作資料視覺化為主 R 語言
我想要建置深度學習模型為主 Python
我想要在網站後端建置機器學習系統為主 Python

資料科學的核心是人不是解決方案

潛在的不效率

  • Data Analyst
  • Data Scientist
  • Data Engineer

解決不效率:整個團隊的任務

I believe the world could be a better place if more designers learned how to code and more developers learned how to design. They are the ones who will experiment & play. They are the ones who will take risks. They are the ones who will build & launch their ideas.

Mackenzie Child

10x Data Scientist

  • 寫程式
  • 數學、統計與機率
  • 機器學習
  • 抱持懷疑
  • 溝通

What characteristics does a 10x data scientist have?

常見資料科學應用

  • 資料來源
  • 資料處理
  • 資料視覺化
  • 機器學習
  • 高效能運算

資料來源

  • 檔案
  • 資料庫
  • 網頁

資料處理

  • 維度
  • 變數類型
  • 對稱性

資料視覺化

  • 不容易暸解的公式

\[S(x) = \frac{1}{1 + e^{-x}}\]

  • 較容易暸解的圖形

機器學習

https://rapidminer.com/

高效能運算

  • C 語言的介接
  • Scala
  • Julia
  • AWS / GCP

喜愛的電影資訊(IMDB)

使用 Selenium + Python

def get_movie_info(movie_title):

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import time

    driver = webdriver.Chrome(executable_path="/Users/kuoyaojen/Downloads/chromedriver")
    driver.get("http://www.imdb.com/")
    search_elem = driver.find_element_by_css_selector("#navbar-query")
    search_elem.send_keys(movie_title)
    time.sleep(3)
    search_button_elem = driver.find_element_by_css_selector("#navbar-submit-button .navbarSprite")
    search_button_elem.click()
    time.sleep(3)
    first_result_elem = driver.find_element_by_css_selector("#findSubHeader+ .findSection .odd:nth-child(1) .result_text a")
    first_result_elem.click()
    time.sleep(3)
    rating_elem = driver.find_element_by_css_selector("strong span")
    rating = float(rating_elem.text)
    cast_elem = driver.find_elements_by_css_selector(".itemprop .itemprop")
    cast_list = [cast.text for cast in cast_elem]
    driver.close()
    return rating, cast_list

輸入喜愛電影清單

def get_movies_info(movie_titles):
    movies_info = []
    for movie_title in movie_titles:
        movie_info = get_movie_info(movie_title)
        movies_info.append(movie_info)
    return movies_info

NBA 籃球員的年薪分佈

擷取 NBA 籃球員年薪

http://hoopshype.com/salaries/players/

##          players salaries
## 1  Stephen Curry 34682550
## 2   LeBron James 33285709
## 3   Paul Millsap 30769231
## 4 Gordon Hayward 29727900
## 5  Blake Griffin 29512900
## 6     Kyle Lowry 28703704

繪製成直方圖觀察散佈

Hans Rosling: The best stats you’ve ever seen

Gapminder Replica

路途很長

毋免驚,咱寬寬仔行。

滅火器:海上的人

Docendo discimus

與我聯絡

tony@kyosei.ai